public class code2_2 {
    class Solution {
        public void duplicateZeros(int[] arr) {
            //思路：遇到0写两个，从后往前写，但是需要知道最后一个位置

            //找出最后一个位置
            int n = arr.length,i=0,j=-1;
            while(i<n) {
                if(arr[i]==0) j++;
                j++;
                if(j>=n-1) break;
                i++;
            }
            if(j==n) {
                arr[n-1]=0;
                i--;
                j-=2;
            }
            //从后向前复写
            while(i>=0) {
                if(arr[i]!=0) {
                    arr[j--]=arr[i--];
                }
                else {
                    arr[j--]=0;
                    arr[j--]=0;
                    i--;
                }
            }
        }
    }
}
